<?php

// 查立得PHP+mysql通用预约排队系统 V2024.12.12
// 演示地址: http://duilie.chalide.cn
// 文件路径: inc/pubs.php
// 文件大小: 2265 字节
// 最后修改时间: 2024-12-04 03:59:44
// 作者: yujianyue
// 邮件: 15058593138@qq.com
// 版权所有,保留发行权和署名权
if(!defined('IN_SYSTEM')) {
    die('Access Denied');
}

/**
 * 输出JSON格式的提示信息并记录日志
 * @param int $code 状态码 0失败 1成功
 * @param string $msg 提示信息
 * @param array $data 附加数据
 */
function json_msg($code, $msg, $data = array()) {
    $result = array(
        'code' => $code,
        'msg' => $msg,
        'data' => $data
    );
    
    // 记录日志
    $log_dir = __DIR__ . '/../logs';
    if (!is_dir($log_dir)) {
        mkdir($log_dir, 0777, true);
    }
    
    $log_file = $log_dir . '/log_' . date('Ymd') . '.php';
    $log_content = date('Y-m-d H:i:s') . ' | ' . 
                   $_SERVER['REMOTE_ADDR'] . ' | ' . 
                   $msg . "\n";
    
    // 如果日志文件不存在，添加PHP禁止访问代码
    if (!file_exists($log_file)) {
        file_put_contents($log_file, "<?php die('Access Denied'); ?>\n");
    }
    
    file_put_contents($log_file, $log_content, FILE_APPEND);
    
    // 输出JSON
    header('Content-Type: application/json');
    echo json_encode($result, JSON_UNESCAPED_UNICODE);
    exit;
}

/**
 * 安全过滤函数
 * @param string $str 需要过滤的字符串
 * @return string 过滤后的字符串
 */
function safe_string($str) {
    if(!get_magic_quotes_gpc()) {
        $str = addslashes($str);
    }
    $str = str_replace("_", "\_", $str);
    $str = str_replace("%", "\%", $str);
    $str = htmlspecialchars($str);
    return $str;
}

/**
 * 验证身份证号
 * @param string $id_card 身份证号
 * @return bool
 */
function check_id_card($id_card) {
    $pattern = '/(^\d{15}$)|(^\d{18}$)|(^\d{17}(\d|X|x)$)/';
    return preg_match($pattern, $id_card);
}

/**
 * 验证手机号
 * @param string $mobile 手机号
 * @return bool
 */
function check_mobile($mobile) {
    return preg_match('/^1[3456789]\d{9}$/', $mobile);
}

/**
 * 生成随机核销码
 * @param int $length 长度
 * @return string
 */
function generate_verify_code($length = 6) {
    $chars = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ';
    $code = '';
    for ($i = 0; $i < $length; $i++) {
        $code .= $chars[mt_rand(0, strlen($chars) - 1)];
    }
    return $code;
} 